package cn.bugstack.domain.rebate.repository;

import cn.bugstack.domain.rebate.model.aggregate.BehaviorRebateAggregate;
import cn.bugstack.domain.rebate.model.entity.BehaviorRebateOrderEntity;
import cn.bugstack.domain.rebate.model.valobj.BehaviorTypeVO;
import cn.bugstack.domain.rebate.model.valobj.DailyBehaviorRebateVO;

import java.util.List;

public interface IBehaviorRebateRepository {
    /**
     * 保存用户返利记录
     * @param userId 用户ID
     * @param behaviorRebateAggregates 行为返利聚合对象集合
     */
    public void saveUserRebateRecord(String userId, List<BehaviorRebateAggregate> behaviorRebateAggregates);

    /**
     * 查询日常行为返利配置
     * @param behaviorTypeVO 行为类型值对象
     * @return 日常行为返利活动值对象
     */
    List<DailyBehaviorRebateVO> queryDailyBehaviorRebateConfig(BehaviorTypeVO behaviorTypeVO);

    /**
     * 通过外部业务ID查询订单
     * @param userId 用户ID
     * @param outBusinessNo 外部的业务ID
     * @return 行为返利订单实体对象列表
     */
    List<BehaviorRebateOrderEntity> queryOrderByOutBusinessNo(String userId, String outBusinessNo);
}
